#ifndef VIDEO_ENCODER_H
#define VIDEO_ENCODER_H

#include "Module/Module.h"
#include "MxBase/E2eInfer/ImageProcessor/ImageProcessor.h"
#include "MxBase/E2eInfer/VideoDecoder/VideoDecoder.h"
#include "MxBase/E2eInfer/VideoEncoder/VideoEncoder.h"
#include "MxBase/E2eInfer/DataType.h"

#include "MxBase/MxBase.h"
#include "MxBase/Log/Log.h"
using namespace MxBase;


class Encoder : public Module {
public:
    Encoder() = default;
    ~Encoder() = default;
    virtual APP_ERROR Init() override;
    virtual APP_ERROR Process(const std::shared_ptr<void> &input) override;
    virtual APP_ERROR DeInit() override;
    virtual std::string GetModuleName() override;
private:
    std::shared_ptr<VideoEncoder> videoEncoder_;
    uint32_t frameId_ = 0;
};

#endif